package com.reebake.ideal.material.entity;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

 /**
 * 计量单位
 * 
 */
@Schema(name = "计量单位", description = "")
@TableName("idl_material_unit")
@Data
public class MaterialUnit implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Schema(name = "主键", description = "")
    @TableId
    private String unitId;

    /** 名称 */
    @Schema(name = "名称", description = "")
    private String unitName;

    /** 简称 */
    @Schema(name = "简称", description = "")
    private String shortName;

    /** 符号 */
    @Schema(name = "符号", description = "")
    private String symbol;

    /** 类型 */
    @Schema(name = "类型", description = "")
    private String unitType;

    /** 是否为套装 */
    @Schema(name = "是否为套装", description = "")
    private Boolean isSet;

    /** 基准单位ID */
    @Schema(name = "基准单位ID", description = "")
    private String baseUnitId;

    /** 基准单位名称 */
    @Schema(name = "基准单位名称", description = "")
    private String baseUnitName;

    /** 换算系数;与基准单位的换算系数 */
    @Schema(name = "换算系数", description = "与基准单位的换算系数")
    private Double conversionFactor;

    /** 单位描述 */
    @Schema(name = "单位描述", description = "")
    private String description;

    /** 排序号 */
    @Schema(name = "排序号", description = "")
    private Integer orderNo;

    /** 备注 */
    @Schema(name = "备注", description = "")
    private String remark;

    /** 删除标识 */
    @Schema(name = "删除标识", description = "")
    @TableLogic
    private Boolean deleteFlag;

    /** 租户号 */
    @Schema(name = "租户号", description = "")
    private String tenantId;

    /** 乐观锁 */
    @Schema(name = "乐观锁", description = "")
    private Integer revision;

    /** 创建人 */
    @Schema(name = "创建人", description = "")
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @Schema(name = "创建时间", description = "")
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;

    /** 更新人 */
    @Schema(name = "更新人", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @Schema(name = "更新时间", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;

}